//
//  GDHomeViewController.swift
//  weibo
//
//  Created by user on 15/11/23.
//  Copyright © 2015年 user. All rights reserved.
//

import UIKit

import AFNetworking

import SVProgressHUD

class GDHomeViewController: GDBaseTableViewController {

    
//    cell重用标示
    private let ReuseIdentifier = "ReuseIdentifier"
    
    
    //要显示的微博数据
    //每次加载都更新下数据
    var statuses: [GDStatus]? {
        didSet{
            tableView.reloadData()
        }
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
//       // 控制的view布局位置
//                edgesForExtendedLayout = UIRectEdge.None

        //判断用户已经登录，才需要做下面的操作
        if !userlogin {
            return
        }
        
        setupNav()
        
        prepareTableView()
        
        GDStatus.loadStatus { (statuses, error) -> () in
            // 判断是否有错误
            if error != nil {
//                print("加载微博数据: \(error)")
                SVProgressHUD.showErrorWithStatus("网络不给力")
                return
            }
            
//            print("加载到的微博数据:\(statuses)")
            
            // 赋值给属性
            self.statuses = statuses
        }
        
    }
    
    private func prepareTableView() {
        //注册cell
        tableView.registerClass(GDStatusCell.self, forCellReuseIdentifier: ReuseIdentifier)
        //取消cell的分割线
        tableView.separatorStyle = UITableViewCellSeparatorStyle.None
        
        
        //设置预估行高
        tableView.estimatedRowHeight = 300
        
        //设置行高,根据cell的约束来自动确定cell的高度
        tableView.rowHeight = UITableViewAutomaticDimension
        
    }

    //设置导航栏
    private func setupNav() {
        
        // 设置导航栏左边
        navigationItem.leftBarButtonItem = UIBarButtonItem(imageName: "navigationbar_friendsearch")
        
        // 设置导航栏右边
        navigationItem.rightBarButtonItem = UIBarButtonItem(imageName: "navigationbar_pop")
        
        //??: 如果 ？？前面有值，就使用前面的值，？？前面没有值，就使用？？后面的值
        
        let screen_name = GDUserAccount.loadUserAccount()?.screen_name ?? "iOS6"
        
        let homeTitleButton = GDHomeTitleButton(title: screen_name)
        
        navigationItem.titleView = homeTitleButton
        homeTitleButton.addTarget(self, action: "homeTitleButtonClick:", forControlEvents: UIControlEvents.TouchUpInside)
        
        
        
    }
    
    func homeTitleButtonClick(button: UIButton) {
        //点击修改按钮的选中状态
        button.selected = !button.selected
        
        //根据按钮的选中状态来开始动画
        //按钮选中的时候，箭头转到上面去，按钮没有选中的时候，箭头转到下面来
        
        UIView.animateWithDuration(0.25, animations: { () -> Void in
            button.imageView?.transform = button.selected ? CGAffineTransformMakeRotation(CGFloat(M_PI - 0.01)) : CGAffineTransformIdentity
        })
        
        
    }
    
    //tableView数据源
    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        //返回statuses的数量
        return statuses?.count ?? 0
    }
    
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        
        let cell = tableView.dequeueReusableCellWithIdentifier(ReuseIdentifier) as! GDStatusCell
        
        //给cell设置模型
        cell.status = statuses?[indexPath.row]
        
        return cell
        
    }

}
